﻿/**********************************************************************
 * @file   GUIFESubSysAcousticDialog.h
 * @brief  FE子系统腔体界面类
 * @author liuzhonghua (liuzhonghuaszch@163.com)
 * @date   2024-12-27
 *********************************************************************/
#ifndef _GUIFESubSysAcousticDialog_H
#define _GUIFESubSysAcousticDialog_H

#include "GUIFESubSysBaseDialog.h"

namespace Ui
{
    class GUIFESubSysAcousticDialog;
}

namespace Acoustics
{
    class FITKFESubSysAcoustic;
}

class QStandardItemModel;

namespace GUI
{
    /**
     * @brief FE子系统结构界面类
     * @author liuzhonghua (liuzhonghuaszch@163.com)
     * @date 2024-10-23
     */
    class GUISubSystemDialogAPI GUIFESubSysAcousticDialog : public GUIFESubSysBaseDialog
    {
        Q_OBJECT;
    public:
        /**
         * @brief edit load object dialog
         * @param[i]  obj            My Param doc
         * @param[i]  oper           operator
         * @param[i]  parent
         * @author liuzhonghua (liuzhonghuaszch@163.com)
         * @date 2024-10-23
         */
        GUIFESubSysAcousticDialog(Acoustics::FITKFESubSysAcoustic* obj, Core::FITKActionOperator* oper, QWidget* parent = nullptr);
        /**
         * @brief Destroy object
         * @author liuzhonghua (liuzhonghuaszch@163.com)
         * @date 2024-10-23
         */
        virtual ~GUIFESubSysAcousticDialog();
        /**
         * @brief    初始化
         * @return   void
         * @author   liuzhonghua (liuzhonghuaszch@163.com)
         * @date     2024-12-09
         */
        virtual void init() override;

    protected slots:
        /**
         * @brief cencel button clicked slot
         * @author liuzhonghua (liuzhonghuaszch@163.com)
         * @date 2024-10-23
         */
        void on_pushButton_Cancel_clicked();
        /**
         * @brief OK button clicked slot
         * @author liuzhonghua (liuzhonghuaszch@163.com)
         * @date 2024-10-23
         */
        void on_pushButton_OK_clicked();

    protected:
        /**
         * @brief    初始化界面图像
         * @return   void
         * @author   liuzhonghua (liuzhonghuaszch@163.com)
         * @date     2024-12-11
         */
        void initWidgetImage();
        /**
         * @brief    初始化属性列表
         * @return   void
         * @author   liuzhonghua (liuzhonghuaszch@163.com)
         * @date     2024-12-21
         */
        void initTableViewAttributes();
        /**
         * @brief    初始化单元列表
         * @return   void
         * @author   liuzhonghua (liuzhonghuaszch@163.com)
         * @date     2025-01-03
         */
        void initTableViewElements();
        /**
         * @brief    初始化节点列表
         * @return   void
         * @author   liuzhonghua (liuzhonghuaszch@163.com)
         * @date     2025-01-03
         */
        void initTableViewNodes();
        /**
         * @brief    初始化几何属性
         * @return   void
         * @author   liuzhonghua (liuzhonghuaszch@163.com)
         * @date     2024-12-27
         */
        void initGeometryProp();
        /**
         * @brief    初始化阻尼下拉框数据
         * @return   void
         * @author   liuzhonghua (liuzhonghuaszch@163.com)
         * @date     2024-12-26
         */
        void initDampingLossComboBox();
        /**
         * @brief    初始化流体材料下拉框数据
         * @return   void
         * @author   liuzhonghua (liuzhonghuaszch@163.com)
         * @date     2024-12-27
         */
        void initFluidComboBox();
        /**
         * @brief    从界面获取数据
         * @return   void
         * @author   liuzhonghua (liuzhonghuaszch@163.com)
         * @date     2024-12-10
         */
        virtual void getDataFormWidget() override;
        /**
         * @brief    从界面里获取设置的名称
         * @return   QString
         * @author   liuzhonghua (liuzhonghuaszch@163.com)
         * @date     2024-12-10
         */
        virtual QString getNameFormWidget() override;

    protected:
        /**
         * @brief ui object
         * @author liuzhonghua (liuzhonghuaszch@163.com)
         * @date 2024-10-23
         */
        Ui::GUIFESubSysAcousticDialog* _ui = nullptr;
        /**
         * @brief  属性表格
         * @author liuzhonghua (liuzhonghuaszch@163.com)
         * @date   2024-12-21
         */
        QStandardItemModel* _tableView_Attributes{};
        /**
         * @brief  单元表格
         * @author liuzhonghua (liuzhonghuaszch@163.com)
         * @date   2025-01-03
         */
        QStandardItemModel* _tableView_Elements{};
        /**
         * @brief  节点表格
         * @author liuzhonghua (liuzhonghuaszch@163.com)
         * @date   2025-01-03
         */
        QStandardItemModel* _tableView_Nodes{};
    };
}

#endif
